import numpy as np

# 创建一个二维数组
arr = np.array([[1, 2, 3],
                [4, 5, 6],
                [7, 8, 9]])

# 沿着列方向求和（axis=0）
sum_axis_0 = np.sum(arr, axis=0)
print("沿着列方向求和（axis=0）:", sum_axis_0)
# 对每一列进行求和，结果是 [1+4+7, 2+5+8, 3+6+9] = [12, 15, 18]。
# 输出: [12 15 18]

# 沿着行方向求和（axis=1）
sum_axis_1 = np.sum(arr, axis=1)
print("沿着行方向求和（axis=1）:", sum_axis_1)
# 对每一行进行求和，结果是 [1+2+3, 4+5+6, 7+8+9] = [6, 15, 24]。
# 输出: [ 6 15 24]

print('*' * 40)
arr = np.arange(24).reshape(2, 3, 4)
print(arr)
"""
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
"""

print('*' * 40)
sum_axis_0 = np.sum(arr, axis=0)
print(sum_axis_0)
"""
sum_axis_0 = 
[[ 0+12   1+13   2+14   3+15]
 [ 4+16   5+17   6+18   7+19]
 [ 8+20   9+21  10+22  11+23]]
= 
[[12 14 16 18]
 [20 22 24 26]
 [28 30 32 34]]
"""

print('*' * 40)
sum_axis_1 = np.sum(arr, axis=1)
print(sum_axis_1)
"""
对每一个“二维矩阵”，将其每一列上的三个数相加。
以第一个矩阵为例：
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
按列求和：
[0+4+8, 1+5+9, 2+6+10, 3+7+11] = [12, 15, 18, 21]
第二个矩阵同理：
[12+16+20, 13+17+21, 14+18+22, 15+19+23] = [48, 51, 54, 57]
所以最终：
sum_axis_1 = 
[[12 15 18 21]
 [48 51 54 57]]
"""

print('*' * 40)
sum_axis_2 = np.sum(arr, axis=2)
print(sum_axis_2)
"""
对每个“一行四列”的向量求和。
第一块：
[0, 1, 2, 3] → sum = 6
[4, 5, 6, 7] → sum = 22
[8, 9,10,11] → sum = 38
第二块：
[12,13,14,15] → sum = 54
[16,17,18,19] → sum = 70
[20,21,22,23] → sum = 86
所以：
sum_axis_2 = 
[[ 6  22  38]
 [54 70  86]]
"""